From b28fea94a0641e130431a2417fb598accc36b896 Mon Sep 17 00:00:00 2001 From: Xan Lopez Date: Thu, 27 Dec 2007 14:04:37 +0000 Subject: [PATCH] Add gtk_border_new to avoid memory allocator confusions when using 2007-12-27 Xan Lopez * gtk/gtk.symbols: * gtk/gtkstyle.c (gtk_border_new, gtk_border_copy): Add gtk_border_new to avoid memory allocator confusions when using GtkBorders. Also, make gtk_border_copy use g_slice_dup. (#454042) svn path=/trunk/; revision=19248 --- ChangeLog | 8 ++++++++ docs/reference/ChangeLog | 4 ++++ docs/reference/gtk/gtk-sections.txt | 1 + gtk/gtk.symbols | 1 + gtk/gtkstyle.c | 23 ++++++++++++++++------- gtk/gtkstyle.h | 1 + 6 files changed, 31 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 17726636ba..45889a8185 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-12-27 Xan Lopez + + * gtk/gtk.symbols: + * gtk/gtkstyle.c (gtk_border_new, gtk_border_copy): + + Add gtk_border_new to avoid memory allocator confusions when using + GtkBorders. Also, make gtk_border_copy use g_slice_dup. (#454042) + 2007-12-27 Christian Persch * gdk/x11/gdkscreen-x11.c: (init_randr12): Fir the patch from diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index 0db89fe048..ee848683e2 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,7 @@ +2007-12-27 Xan Lopez + + * gtk/gtk-sections.txt: Add gtk_border_new + 2007-12-19 19:54:11 Tim Janik * libgail-util/Makefile.am: include Makefile.decl to unbreak test rules. diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt index f557f878e7..cc0051a117 100644 --- a/docs/reference/gtk/gtk-sections.txt +++ b/docs/reference/gtk/gtk-sections.txt @@ -5646,6 +5646,7 @@ gtk_draw_insertion_cursor GtkBorder +gtk_border_new gtk_border_copy gtk_border_free diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index c3aace362b..71e1fb9b0b 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -1172,6 +1172,7 @@ gtk_paint_shadow_gap gtk_paint_slider gtk_paint_tab gtk_paint_vline +gtk_border_new G_GNUC_MALLOC gtk_border_copy gtk_border_free gtk_border_get_type G_GNUC_CONST diff --git a/gtk/gtkstyle.c b/gtk/gtkstyle.c index 1eaa9da64e..5f63f8ff0d 100644 --- a/gtk/gtkstyle.c +++ b/gtk/gtkstyle.c @@ -6398,6 +6398,21 @@ gtk_paint_resize_grip (GtkStyle *style, edge, x, y, width, height); } +/** + * gtk_border_new: + * + * Allocates a new #GtkBorder structure and initializes its elements to zero. + * + * Returns: a new empty #GtkBorder. The newly allocated #GtkBorder should be freed + * with gtk_border_free() + * Since: 2.16 + **/ +GtkBorder * +gtk_border_new (void) +{ + return g_slice_new0 (GtkBorder); +} + /** * gtk_border_copy: * @border_: a #GtkBorder. @@ -6408,15 +6423,9 @@ gtk_paint_resize_grip (GtkStyle *style, GtkBorder * gtk_border_copy (const GtkBorder *border) { - GtkBorder *ret; - g_return_val_if_fail (border != NULL, NULL); - ret = g_slice_new (GtkBorder); - - *ret = *border; - - return ret; + return g_slice_dup (GtkBorder, border); } /** diff --git a/gtk/gtkstyle.h b/gtk/gtkstyle.h index bed56e0c2f..3d5afc1443 100644 --- a/gtk/gtkstyle.h +++ b/gtk/gtkstyle.h @@ -856,6 +856,7 @@ void gtk_paint_resize_grip (GtkStyle *style, GType gtk_border_get_type (void) G_GNUC_CONST; +GtkBorder *gtk_border_new (void) G_GNUC_MALLOC; GtkBorder *gtk_border_copy (const GtkBorder *border_); void gtk_border_free (GtkBorder *border_); -- 2.30.2